using System;
using System.Collections;
using System.Collections.Generic;
using System.Windows.Forms;
namespace Circus.Syntax.CodeCompletion
{
	public interface ICodeCompletionProvider : IList<IComparable>
	{
		event ClosePopupEvent ClosePopup;
		event ShowPopupEvent ShowPopup;
		int ColumnCount
		{
			get;
		}
		string[] Strings
		{
			get;
		}
		int[] ImageIndexes
		{
			get;
		}
		string[] Descriptions
		{
			get;
		}
		bool ShowDescriptions
		{
			get;
			set;
		}
		int SelIndex
		{
			get;
			set;
		}
		ImageList Images
		{
			get;
			set;
		}
		bool UseIndent
		{
			get;
			set;
		}
		bool UseHtmlFormatting
		{
			get;
			set;
		}
		string EditField
		{
			get;
			set;
		}
		string EditPath
		{
			get;
		}
		bool FormatDisplayText
		{
			get;
		}
		bool FocusMode
		{
			get;
			set;
		}
		bool ColumnVisible(int column);
		bool ColumnSpace(int column);
		string GetColumnText(int index, int column);
		string GetText(int index);
		int GetImageIndex(int index);
		string GetDescription(int index);
		string GetName(int index);
		string GetDisplayText(int index);
		int GetPriority(int index);
		int IndexOfName(string name, bool caseSensitive);
		ICodeCompletionProvider GetParent();
		void Sort();
		void Sort(IComparer<IComparable> comparer);
		void OnShowPopup(object sender, ShowingEventArgs e);
		void OnClosePopup(object sender, ClosingEventArgs e);
	}
}
